home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_08_02 / 8n02023a < prev    next >
Text File  |  1990-02-28  |  4KB  |  176 lines

  1. LISTING 2
  2.  
  3. module editor
  4.     version = 'v1.0'
  5.     names = case_sensitive
  6.  
  7. include file('XmAppl.uil');
  8.  
  9. procedure    GPcallback(string);
  10.         new_buffer();
  11.         load_file();
  12.         save_file();
  13.         saveas_file();
  14.         exit_editor();
  15.         create_text_widget();
  16.  
  17. object editor_main : XmMainWindow {
  18.         controls {
  19.             XmMenuBar    menu;
  20.             XmFrame        workframe;
  21.         };
  22.     };
  23.  
  24. object menu : XmMenuBar {
  25.         arguments {
  26.             XmNmenuHelpWidget = XmCascadeButton helpmenu;
  27.         };
  28.         controls {
  29.             XmCascadeButton    filemenu;
  30.             XmCascadeButton    optionmenu;
  31.             XmCascadeButton helpmenu;
  32.         };
  33.     };
  34.  
  35. object filemenu : XmCascadeButton {
  36.         arguments {
  37.             XmNlabelString = 'File';
  38.             XmNmnemonic = 70;    ! (this is ASCII for 'F')
  39.         };
  40.         controls {
  41.             XmPulldownMenu    file_pulldown;
  42.         };
  43.     };
  44.  
  45. object file_pulldown : XmPulldownMenu {
  46.         controls {
  47.             XmPushButton {
  48.               arguments { XmNlabelString = "New"; };
  49.               callbacks { XmNactivateCallback =
  50.                     procedure new_buffer(); };
  51.             };
  52.             XmPushButton {
  53.               arguments { XmNlabelString = "Open..."; };
  54.               callbacks { XmNactivateCallback =
  55.                     procedure
  56.                     GPcallback("open_file"); };
  57.             };
  58.             XmPushButton {
  59.               arguments { XmNlabelString = "Save"; };
  60.               callbacks { XmNactivateCallback = 
  61.                     procedure save_file(); };
  62.             };
  63.             XmPushButton {
  64.               arguments { XmNlabelString = "Save As..."; };
  65.               callbacks { XmNactivateCallback =
  66.                     procedure
  67.                     GPcallback("save_as"); };
  68.             };
  69.             XmSeparator    {};
  70.             XmPushButton {
  71.               arguments { XmNlabelString = "Print"; };
  72.             };
  73.             XmSeparator    {};
  74.             XmPushButton {
  75.               arguments { XmNlabelString = "Exit"; };
  76.               callbacks { XmNactivateCallback =
  77.                     procedure exit_editor(); };
  78.             };
  79.         };
  80.     };
  81.  
  82. object optionmenu : XmCascadeButton {
  83.         arguments {
  84.             XmNlabelString = 'Options';
  85.             XmNmnemonic = 79;    ! ASCII 'O'
  86.         };
  87.         controls {
  88.             XmPulldownMenu    option_pulldown;
  89.         };
  90.     };
  91.  
  92. object option_pulldown : XmPulldownMenu {
  93.         controls {
  94.             XmPushButton {
  95.               arguments { XmNlabelString = "Change Directory"; };
  96.               callbacks { XmNactivateCallback =
  97.                     procedure
  98.                     GPcallback("cd_prompt"); };
  99.             };
  100.             XmSeparator    {};
  101.             XmPushButton {
  102.               arguments { XmNlabelString = "Text Search"; };
  103.               callbacks { XmNactivateCallback =
  104.                     procedure
  105.                     GPcallback("search_prompt"); };
  106.             };
  107.             XmPushButton {
  108.               arguments { XmNlabelString = "Text Replace"; };
  109.             };
  110.         };
  111.     };
  112.  
  113. object helpmenu : XmCascadeButton {
  114.         arguments {
  115.             XmNlabelString = "Help";
  116.             XmNmnemonic = 72;    ! ASCII 'H'
  117.         };
  118.     };
  119.  
  120. object workframe : XmFrame {
  121.         controls {
  122.             XmScrolledText        textframe;
  123.         };
  124.     };
  125.  
  126. object textframe : XmScrolledText {
  127.         arguments {
  128.             XmNeditMode    = XmMULTI_LINE_EDIT;
  129.             XmNscrollHorizontal = true;
  130.             XmNscrollVertical   = true;
  131.             XmNrows = 20;
  132.             XmNcolumns = 60;
  133.         };
  134.         callbacks {
  135.             XmNcreateCallback = procedure create_text_widget();
  136.         };
  137.     };
  138.  
  139. object cd_prompt : XmPromptDialog {
  140.         arguments {
  141.             XmNdialogTitle = "change directory";
  142.             XmNselectionLabelString
  143.                 = "Change to which directory?";
  144.         };
  145.     };
  146.  
  147. object search_prompt : XmPromptDialog {
  148.         arguments {
  149.             XmNdialogTitle = "text search";
  150.             XmNselectionLabelString
  151.                 = "Enter search string:";
  152.         };
  153.     };
  154.  
  155. object open_file : XmFileSelectionDialog {
  156.         arguments {
  157.             XmNdialogTitle = "open file";
  158.         };
  159.         callbacks {
  160.             XmNokCallback = procedure load_file();
  161.         };
  162.     };
  163.  
  164. object save_as : XmPromptDialog {
  165.         arguments {
  166.             XmNdialogTitle = "save file";
  167.             XmNselectionLabelString
  168.                 = "Save as what file?";
  169.         };
  170.         callbacks {
  171.             XmNokCallback = procedure saveas_file();
  172.         };
  173.     };
  174.  
  175. end module;
  176.